/* 
 * File:   Wektor.h
 * Author: Arek
 *
 * Created on 14 pa�dziernik 2008, 12:43
 */

#ifndef _WEKTOR_H
#define	_WEKTOR_H
#include <math.h>
#include <iostream>


class Wektor {
private:

public:
    double x;
    double y;
    double z;
    /**
     *
     */
    Wektor();
    /**
     *
     */
    Wektor(double x, double y, double z);

    /**
     *
     */
    inline double dlugosc() {
        return sqrt(x * x + y * y + z * z);
    }

    Wektor operator*(double d);
    Wektor operator*(Wektor& w);
    Wektor operator+(Wektor w);
    Wektor operator-(Wektor w);
    Wektor operator/(double d);
    void operator/=(double d);

    double razy(Wektor& w);
    /**
     * Normuje wektor do długości jednostkowej
     */
    inline void norm() {
        double d = this->dlugosc();
        this->x /= d;
        this->y /= d;
        this->z /= d;
    }

    /**
     * Podaje długość wektora
     */

    inline double X() {
        return this->x;
    };

    inline double Y() {
        return this->y;
    };

    inline double Z() {
        return this->z;
    };

//friend std::ostream& operator<< (std::ostream&, Wektor& w);
};

#endif	/* _WEKTOR_H */

